package com.github.yyeerai.hybridserverapi.common.interfaces;

import de.tr7zw.nbtapi.iface.ReadWriteItemNBT;
import org.bukkit.inventory.ItemStack;

import java.util.UUID;

public interface IPokemon {

    HybridPokemon getHybridPokemon(String pokemonSpecies);

    HybridPokemon getHybridPokemon(ReadWriteItemNBT nbt);

    PokemonPlayer getPokemonPlayer(String playerName);

    PokemonPlayer getPokemonPlayer(UUID playerUUID);

    ItemStack getHybridPokemonPhoto(HybridPokemon hybridPokemon);

    ItemStack getHybridPokemonGlowPhoto(HybridPokemon hybridPokemon);

    boolean removeHybridPokemonFromParty(PokemonPlayer pokemonPlayer, HybridPokemon hybridPokemon);

    boolean addHybridPokemonToParty(PokemonPlayer pokemonPlayer, HybridPokemon hybridPokemon);

    boolean isHybridPokemonInParty(PokemonPlayer pokemonPlayer, HybridPokemon hybridPokemon);

    boolean removeHybridPokemonFromPc(PokemonPlayer pokemonPlayer, String pokemonSpecies);

    boolean addHybridPokemonToPc(PokemonPlayer pokemonPlayer, HybridPokemon hybridPokemon);

    boolean isHybridPokemonInPc(PokemonPlayer pokemonPlayer, String pokemonSpecies);

}